Micron Document
____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|


The NomadNet German Wikipedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

🔍 Search

ÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻ

Internet Control Message Protocol
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Das Internet Control Message Protocol (ICMP) dient in Rechnernetzwerken dem Austausch von Informations- und Fehlermeldungen über das Internet-Protokoll in der Version 4 (IPv4). Für IPv6 existiert ein ähnliches Protokoll mit dem Namen ICMPv6.

ICMP ist Bestandteil von IPv4, wird aber wie ein eigenständiges Protokoll behandelt. Es wird von jedem Router und jedem Rechner erwartet, dass sie ICMP „verstehen“. Die meisten ICMP-Pakete enthalten Diagnose-Informationen: Sie werden vom Router zur Quelle zurückgeschickt, wenn der Router Pakete verwirft, etwa weil beispielsweise das Ziel nicht erreichbar ist oder die TTL abgelaufen ist. Es gelten folgende Grundsätze:

• ICMP benutzt IP als Kommunikationsbasis, indem es sich selbst als Protokoll einer höheren Schicht interpretiert, d. h. ICMP-Nachrichten werden in IP-Paketen gekapselt.
• ICMP erkennt einige Fehlerzustände, macht aber IPv4 nicht zu einem zuverlässigen Protokoll.
• ICMP analysiert Fehler in jedem IP-Paket, mit Ausnahme solcher, die eine ICMP-Nachricht tragen.
• ICMP-Nachrichten werden nicht als Antwort auf Pakete an Zieladressen versendet, bei denen es sich um Multicast- oder Broadcast-Adressen handelt.
• ICMP-Nachrichten antworten nur einer eindeutigen Quell-IP-Adresse.

Contents

• Time-To-Live
• Aufbau
• Literatur

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Die ICMP-Pakettypen

Der Typ des ICMP-Pakets und der zugehörige Code stehen als jeweils 8-Bit-Zahl am Anfang des ICMP-Headers. Die Zahlen haben dabei folgende Bedeutungen:cite-ref-iana-6-0[6]

| Nachrichtentyp (Type) | Nachrichtenbezeichnung | Code | Status | Beschreibung |
|---|---|---|---|---|
| 0 | Echo Reply (Echo-Antwort) | 0 | | Antwort auf Echo-Anfrage (Type 8). Wird bei Ping verwendet. |
| 1 | | | nicht vergeben | reserviert |
| 2 | | | nicht vergeben | reserviert |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 0 | | Zielnetzwerk nicht erreichbar |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 1 | | Ziel-Host ist nicht erreichbar |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 2 | | Zielprotokoll ist nicht erreichbar |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 3 | | Ziel- Port nicht erreichbar |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 4 | | Fragmentierung erforderlich, jedoch ist das Don’t-Fragment-Flag gesetzt |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 5 | | Route fehlgeschlagen |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 6 | | Zielnetzwerk unbekannt |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 7 | | Ziel-Host unbekannt |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 8 | | Quell-Host isoliert |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 9 | | Kommunikation mit Zielnetzwerk wurde administrativ verweigert |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 10 | | Kommunikation mit Ziel-Host wurde administrativ verweigert |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 11 | | Zielnetzwerk nicht erreichbar fĂĽr Type of Service |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 12 | | Ziel-Host nicht erreichbar fĂĽr Type of Service |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 13 | | Kommunikation wurde administrativ verweigert |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 14 | | Host Prioritätsverletzung |
| 3 | Destination Unreachable (Ziel nicht erreichbar) | 15 | | Prioritätsabschaltung aktiv |
| 4 | Source Quench (Quelle drosseln) | 0 | veraltet | Ăśberlastkontrolle (congestion control) |
| 5 | Redirect (Umleitung) | 0 | | Umleitungshinweis das Zielnetzwerk betreffend |
| 5 | Redirect (Umleitung) | 1 | | Umleitungshinweis den Ziel-Host betreffend |
| 5 | Redirect (Umleitung) | 2 | | Umleitungshinweis den Type of Service und das Zielnetzwerk betreffend |
| 5 | Redirect (Umleitung) | 3 | | Umleitungshinweis den Type of Service und den Ziel-Host betreffend |
| 6 | Alternate Host Address | | veraltet | Alternative Host-Adresse |
| 7 | | | nicht vergeben | reserviert |
| 8 | Echo Request (Echo-Anfrage) | 0 | | Wird bei Ping gesendet. |
| 9 | Router Advertisement | 0 | | Normales Diensteangebot des Routers |
| 9 | Router Advertisement | 16 | | Router leitet keinen allgemeinen Datenverkehr weiter. |
| 10 | Router Solicitation | 0 | | Router Entdeckung/Auswahl/Anzeige |
| 11 | Time Exceeded (Zeitablauf) | 0 | | TTL während Transit abgelaufen |
| 11 | Time Exceeded (Zeitablauf) | 1 | | Zeit bei der Wiederzusammensetzung bei Fragmentierung abgelaufen |
| 12 | Parameter Problem: Bad IP Header (ungĂĽltiger IP-Header) | 0 | | Der Fehler wird im Header-Feld Pointer der Nachricht genannt. |
| 12 | Parameter Problem: Bad IP Header (ungültiger IP-Header) | 1 | | Eine benötigte Option fehlt |
| 12 | Parameter Problem: Bad IP Header (ungültiger IP-Header) | 2 | | Falsche Länge |
| 13 | Timestamp (Zeitstempel) | 0 | | Zeitstempelnachricht |
| 14 | Timestamp Reply | 0 | | Antwort auf Zeitstempelnachricht (Type 13) |
| 15 | Information Request | 0 | veraltet | Informationsanfrage |
| 16 | Information Reply | 0 | veraltet | Antwort auf Informationsanfrage (Type 15) |
| 17 | Address Mask Request | 0 | veraltet | Anfrage der Adressierungsmaske |
| 18 | Address Mask Request | 0 | veraltet | Antwort auf Anfrage der Adressierungsmaske (Type 17) |
| 19 | | | reserviert | Reserviert fĂĽr Sicherheit |
| 20 bis 29 | | | reserviert | Reserviert fĂĽr Experimente |
| 30 | Traceroute | 0 | veraltet | Informationsanfrage |
| 31 | | | veraltet | Datagramm Conversion Error |
| 32 | | | veraltet | Mobile Host Redirect |
| 33 | | | veraltet | Where-Are-You (ursprĂĽnglich fĂĽr IPv6 ) |
| 34 | | | veraltet | Here-I-Am (ursprĂĽnglich fĂĽr IPv6) |
| 35 | | | veraltet | Anfrage fĂĽr mobile Registrierung |
| 36 | | | veraltet | Antwort auf Anfrage fĂĽr mobile Registrierung (Type 35) |
| 37 | | | veraltet | Anfrage fĂĽr Domain-Name |
| 38 | | | veraltet | Antwort auf Anfrage fĂĽr Domain-Name (Type 37) |
| 39 | | | veraltet | SKIP ( Simple Key-Management for Internet Protocol ) Algorithm Discovery Protocol |
| 40 | Photuris (Session Key Management Protocol) | 0 | | fehlerhafter SPI |
| 40 | Photuris (Session Key Management Protocol) | 1 | | Authentifizierung fehlgeschlagen |
| 40 | Photuris (Session Key Management Protocol) | 2 | | Dekomprimierung fehlgeschlagen |
| 40 | Photuris (Session Key Management Protocol) | 3 | | EntschlĂĽsselung fehlgeschlagen |
| 40 | Photuris (Session Key Management Protocol) | 4 | | Authentifizierung erforderlich |
| 40 | Photuris (Session Key Management Protocol) | 5 | | Autorisierung erforderlich |
| 41 | | | experimentell | ICMP für experimentelle Mobilitäts-Protokolle wie z. B. RFC 4065 |
| 42 | Extended Echo Request | 0 | | Anfrage fĂĽr erweitertes Echo (XPing) |
| 43 | Extended Echo Reply (Antwort auf Extended Echo Request, Type 42) | 0 | | Keine Fehler |
| 43 | Extended Echo Reply (Antwort auf Extended Echo Request, Type 42) | 1 | | Fehlerhafte Anfrage |
| 43 | Extended Echo Reply (Antwort auf Extended Echo Request, Type 42) | 2 | | Keine solche Schnittstelle |
| 43 | Extended Echo Reply (Antwort auf Extended Echo Request, Type 42) | 3 | | Kein solcher Tabelleneintrag |
| 43 | Extended Echo Reply (Antwort auf Extended Echo Request, Type 42) | 4 | | Mehrere Schnittstellen erfĂĽllen die Anfrage |
| 44 bis 252 | | | nicht vergeben | reserviert |
| 253 | Experiment 1 im Stil von RFC 3692 [ 8 ] | | | experimentell (RFC 4727) [ 9 ] |
| 254 | Experiment 2 im Stil von RFC 3692 [ 8 ] | | | experimentell (RFC 4727) [ 9 ] |
| 255 | | | reserviert | reserviert |

Time-To-Live

Um zu verhindern, dass Pakete endlos durch ein Netzwerk (z. B. im Kreis zwischen mehreren Routern) gesendet werden, reduziert ein Router beim Weiterleiten den TTL-Wert um 1. Erreicht der TTL-Wert den Wert 0, wird das Paket gelöscht und der Sender über eine ICMP-Nachricht über diesen Vorgang informiert. Diesen Mechanismus macht sich Traceroute zunutze.

Um die Route (die Hops) eines Pakets zu einem bestimmten Ziel-Host zu ermitteln, versendet das Analyseprogramm Traceroute Datenpakete mit inkrementierender Time-To-Live (TTL) (beginnend mit 1) und wartet auf „Time to live exceeded in transit“ oder „Destination unreachable“ Meldungen als Reaktion. Abhängig von der Implementierung oder einer gewählten Option von Traceroute können das ICMP- (z. B. unter Windows) oder UDP-Pakete (z. B. unter Linux) sein.

Aufbau

ICMP sendet und empfängt eine Vielzahl von Nachrichten. Im IP-Header wird die ICMP-Nachricht durch die Protokollnummer 1 angezeigt. ICMPv6 trägt dagegen die Protokollnummer 58. Das ICMP-Nachrichtenformat besteht aus nur wenigen Feldern:

Das Typ-Feld spezifiziert die Nachricht. Das Code-Feld interpretiert die Nachrichtenart genauer. Die Daten enthalten typischerweise einen Teil der ursprünglichen IP-Nachricht. Einige der häufiger vorkommenden Typ-Code-Kombinationen sind:

| Typ | Typname | Code | Bedeutung |
|---|---|---|---|
| 0 | Echo-Antwort | 0 | Echo-Antwort |
| 3 | Ziel nicht erreichbar | 0 | Netzwerk nicht erreichbar |
| 3 | Ziel nicht erreichbar | 1 | Host (Zielstation) nicht erreichbar |
| 3 | Ziel nicht erreichbar | 2 | Protokoll nicht erreichbar |
| 3 | Ziel nicht erreichbar | 3 | Port nicht erreichbar |
| 3 | Ziel nicht erreichbar | 4 | Fragmentierung nötig, D on’t F ragment aber gesetzt |
| 3 | Ziel nicht erreichbar | 5 | Route nicht möglich (die Richtung in IP-Header-Feld Option falsch angegeben) |
| 3 | Ziel nicht erreichbar | 13 | Communication administratively prohibited (Paket wird von der Firewall des Empfängers geblockt) |
| 4 | Entlasten der Quelle | 0 | Datagramm verworfen, da Warteschlange voll |
| 8 | Echo-Anfrage | 0 | Echo-Anfrage (besser bekannt als „ Ping “) |
| 11 | Zeitlimit ĂĽberschritten | 0 | TTL (Time To Live, Lebensdauer) abgelaufen |
| 11 | Zeitlimit überschritten | 1 | Zeitlimit während der Defragmentierung überschritten |

Ein zusätzliches Feld „Daten“ trägt bei vielen ICMP-Nachrichten im ersten 32-Bit-Wort genauere Informationen zur Zuordnung der ICMP-Nachricht. Oft werden ab dem zweiten Datenwort auch IP-Header des auslösenden Datagramms sowie die ersten 32 Bit des Pakets übermittelt. Das „Daten“-Feld kann jedoch auch dazu missbraucht werden, um Nutzdaten zu übertragen (ICMP-Tunneling). Die notwendige Fehlerbehandlung beziehungsweise Fehlerkorrektur und Ähnliches muss dann jedoch auf der Anwendungsebene implementiert werden.

Sicherheitsrelevante Aspekte

Das Internet Control Message Protocol kann für einen Denial-of-Service- (DoS) oder Distributed-Denial-of-Service-Angriff (DDoS) auf ein Gerät verwendet werden. Außerdem kann ein Gerät von einem Angreifer als Teil eines DDoS-Angriffs für einen Angriff auf ein drittes Gerät missbraucht werden. Typische Angriffsmethoden sind der Smurf-Angriff, das Flooding oder der Ping of Death. Eine weitere Möglichkeit der Ausnutzung des ICMP-Protokolls ist dessen Nutzung zur unberechtigten Datenübertragung mittels ICMP-Tunnel-Verbindung.

Literatur

• Antonio Merola: Verwendung und Missbrauch von ICMP. In: hakin9. Nr. 2, 2006, S. 46–57 (computec.ch [PDF; 1,2 MB]).

Normen und Standards

Standardisiert ist ICMP fĂĽr IPv4 mit RFC 792. Auf Serverseite ist auch das Kapitel ICMP in RFC 1122 hilfreich.

• RFC: 792 – Internet Control Message Protocol [Errata: RFC 792]. September 1989 (aktualisiert durch RFC 950, englisch).
• RFC: 1122 – Requirements for Internet Hosts – Communication Layers [Errata: RFC 1122]. Oktober 1989 (aktualisiert durch RFC 1349, auch für weitere ICMP-Erweiterungen, englisch).

Einzelnachweise

cite-note-11. RFC: 792 – Internet Control Message Protocol [Errata: RFC 792]. September 1989 (aktualisiert durch RFC 950, englisch).
cite-note-22. RFC: 950 – Internet Standard Subnetting Procedure. August 1985 (englisch).
cite-note-33. RFC: 4884 – Extended ICMP to Support Multi-Part Messages. April 2007 (englisch).
cite-note-44. RFC: 6633 – Deprecation of ICMP Source Quench Messages. Mai 2012 (englisch).
cite-note-55. RFC: 6918 – Formally Deprecating Some ICMPv4 Message Types. April 2013 (englisch).
cite-note-iana-66. ↑ Internet Control Message Protocol (ICMP) Parameters. Internet Assigned Numbers Authority, 15. Juni 2018, abgerufen am 9. Dezember 2018 (englisch, Liste aller ICMP-Typen und -Codes).
cite-note-76. J. F. Kurose, K. W. Ross: Computer Netzwerking: A Top-Down Approach. Hrsg.: Addison-Wesley (= World student series). 2006, ISBN 0-321-41849-2.
cite-note-rfc3692-87. RFC: 3692 – Assigning Experimental and Testing Numbers Considered Useful. Januar 2004 (englisch).
cite-note-rfc4727-98. RFC: 4727 – Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers. November 2006 (englisch).